1. Technical Field
The present teaching relates to methods, systems and programming for search. Particularly, the present teaching is directed to methods, systems, and programming for suggesting query term(s) to a user.
2. Discussion of Technical Background
The advancement in the world of the Internet has made it possible to make a tremendous amount of information accessible to users located anywhere in the world. A search engine is a computer system or application that helps a user to locate the information. Using a search engine, a user can execute a query via a query term to obtain a list of information (i.e., query results) that matches the query term. While search engines may be applied in a variety of contexts, search engines are especially useful for locating resources that are accessible through the Internet.
Some search engines order the list of matching information before presenting the list to a user. For achieving this, a search engine may be configured to assign a rank to the matching information in the list. When the list is sorted by rank, matching information with a relatively higher rank may be placed closer to the head of the list than other matching information with relatively lower ranks. The user, when presented with the sorted list, sees the most highly ranked matching information first. To aid the user in his/her query, a search engine may rank the matching information according to relevance. Relevance is a measure of how closely the subject matter of particular information matches a query term.
In a typical situation, the user is enabled to enter an intended query term from a client computing platform associated with the user (e.g., smartphone, tablet, laptop, desktop, or any other client computing platform) via a user interface. Once the user completes inputting the intended query term, the completed query may be transmitted, over a communications network such as the Internet, to the search engine for execution. The user interface typically comprises an input box that allows the user to enter the intended query term one letter at a time.
Known major search engines have features called “query/query term suggestion” or “query auto-completion (QAC)” designed to help users narrow in on what they are looking for. For example, as users type a query, a list of query term suggestions that have been used by many other users before are displayed to assist the users in selecting a desired query term. Query term suggestion facilitates faster user query input by predicting user's intended full query terms given the user's input query prefix.
To provide query term suggestion based on a prefix entered by a user, known query term suggestion systems typically provide query term suggestions by selecting suggested terms from ranked previously entered query terms with that prefix. For example, if the user has entered the prefix “el”, conventional query term suggestion systems typically retrieve query terms that have been previously entered by the user and/or other users with the prefix “el”. This may reveal a number of times query terms with prefix “el”, such as “electronic machine”, “electrical wire” “elephant in Kenya”, “Elbert Einstein” and so on, have been entered by the user and/or other users previously. The conventional query term suggestion systems may then select one or more of these query terms—for example the ones that have been entered most of times previously—for suggestion to the user.
Accordingly, there is at least a need to enhance conventional query term suggestion techniques to account for a query context in which a prefix is entered to improve the relevance of the suggestions with respect to the query terms intended by the user.